﻿using System;
using System.Collections.Generic;
//using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace Xuhengxiao.MediaConverter
{
    /// <summary>
    /// 参数选项配置,这个是保存每个格式的不同参数选项
    /// </summary>
    [Serializable]
     public   class clsParameterOptionScheme
    {
        private string _strFormatName=string.Empty;
        /// <summary>
        /// 格式名称
        /// </summary>
        [XmlElement]
        public string FormatName
        {
            get { return _strFormatName; }
            set { _strFormatName = value; }
        }

        //如下是音频
        private clsParameterOptionSchemeItem _AbBitrate;
        /// <summary>
        /// 音频码率
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem AbBitrate
        {
            get { return _AbBitrate; }
            set { _AbBitrate = value; }
        }

        private clsParameterOptionSchemeItem _ArFreq;
        /// <summary>
        /// 音频采集率
        /// </summary>
        public clsParameterOptionSchemeItem ArFreq
        {
            get { return _ArFreq; }
            set { _ArFreq = value; }
        }
        private clsParameterOptionSchemeItem _AcChannels;
        /// <summary>
        /// 通道
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem AcChannels
        {
            get { return _AcChannels; }
            set { _AcChannels = value; }
        }

        private clsParameterOptionSchemeItem _AcodecCodec;
        /// <summary>
        /// 音频编码器
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem AcodecCodec
        {
            get { return _AcodecCodec; }
            set { _AcodecCodec = value; }
        }

        //如下是视频
        private clsParameterOptionSchemeItem _BBitrate;
        /// <summary>
        /// 比特率
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem BBitrate
        {
            get { return _BBitrate; }
            set { _BBitrate = value; }
        }

        private clsParameterOptionSchemeItem _RFps;
        /// <summary>
        /// 帧频
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem RFps
        {
            get { return _RFps; }
            set { _RFps = value; }
        }

        private clsParameterOptionSchemeItem _SSize;
        /// <summary>
        /// 分辨率
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem SSize
        {
            get { return _SSize; }
            set { _SSize = value; }
        }

        private clsParameterOptionSchemeItem _AspectAspect;
        /// <summary>
        /// 纵横比
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem AspectAspect
        {
            get { return _AspectAspect; }
            set { _AspectAspect = value; }
        }

        private clsParameterOptionSchemeItem _BtTolerance;
        /// <summary>
        /// 视频码率容忍度
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem BtTolerance
        {
            get { return _BtTolerance; }
            set { _BtTolerance = value; }
        }

        private clsParameterOptionSchemeItem _MaxrateBitrate;
        /// <summary>
        /// 最大视频码率容忍度
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem MaxrateBitrate
        {
            get { return _MaxrateBitrate; }
            set { _MaxrateBitrate = value; }
        }

        private clsParameterOptionSchemeItem _MinrateBitreate;
        /// <summary>
        /// 最小视频码率容忍度
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem MinrateBitreate
        {
            get { return _MinrateBitreate; }
            set { _MinrateBitreate = value; }
        }

        private clsParameterOptionSchemeItem _BufsizeSize;
        /// <summary>
        /// 码率控制缓冲区大小
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem BufsizeSize
        {
            get { return _BufsizeSize; }
            set { _BufsizeSize = value; }
        }

        private clsParameterOptionSchemeItem _VcodecCodec;
        /// <summary>
        /// 视频编解码方式
        /// </summary>
        /// 
        [XmlElement]
        public clsParameterOptionSchemeItem VcodecCodec
        {
            get { return _VcodecCodec; }
            set { _VcodecCodec = value; }
        }
    }
}
